package com.maxjay.component.simplelist.model;

import java.io.Serializable;
import java.util.List;

import com.maxjay.component.metadata.model.Entity;

/**
 * 查询方案
 * 
 * @author zhaixm
 *
 */
public interface QueryScheme extends Serializable {
	
	/**
	 * 取得查询方案ID
	 * 
	 * @return
	 */
	String getId();
	
	/**
	 * 取得查询方案名称
	 * 
	 * @return
	 */
	String getName();
	
	/**
	 * 取得查询方案对应的实体
	 * 
	 * @return
	 */
	Entity getEntity();
	
	/**
	 * 添加查询条件字段
	 * 
	 * @param queryField
	 */
	void addConditonField(QueryConditionField queryField);
	
	/**
	 * 添加查询列表显示字段
	 * 
	 * @param entityField
	 */
	void addListField(QueryListField queryListField);
	
	/**
	 * 获取列表显示字段
	 * 
	 * @return
	 */
	List<QueryListField> getListFields();
	
	/**
	 * 获取所有的查询条件字段
	 * 
	 * @return
	 */
	List<QueryConditionField> getConditionFields();
	
	/**
	 * 获取查询方案配置信息
	 * 
	 * @return
	 */
	QuerySchemeConfig getQuerySchemeConfig();
	
}
